System for finding roots of degree three and degree four error locator polynomials over GF(2M)

ABSTRACT

A system determines the locations of four errors in a code word over GF(2 m ), for any m, by transforming a degree-four error locator polynomial σ(x) ultimately into two quadratic equations, finding the solutions of these equations, and from these solutions determining the roots of the error locator polynomial. The system first manipulates the degree-four error locator polynomial into a polynomial θ(y) that has a coefficient of zero for the degree-three term. The system then factors this polynomial into two degree-two factors with four unknown variables. The system expands the factors and represents the coefficients of θ(y) as expressions that include the four unknown variables, and manipulates the expressions to produce a degree-three polynomial with only one of the unknown variables. The system next solves for that variable by finding a root of the degree-three polynomial in GF(2 m ) if the field is an even-bit field or in an even-bit extension of GF(2 m ) if the field is an odd-bit field. The system then substitutes the root into the expressions for the coefficients of θ(y) and produces a degree-two expression is with the remaining unknown variables. The system finds the roots of this expression, substitutes these values into the factors ofθ(y), and sets the factors equal to zero to produce two quadratic equations. The system then solves the equations to produce the roots ofθ(y), and from these solutions determines the roots of the degree-four error locator polynomial.

This application is a continuation of application Ser. No. 08/946,470,filed Oct. 7, 1997, now abandoned.

FIELD OF THE INVENTION

This invention relates generally to data processing systems and, moreparticularly, to a system for decoding and correcting errors in datausing an error correction code.

BACKGROUND OF THE INVENTION

Data stored on magnetic media, such as a magnetic disks, are typicallystored in encoded form, so that errors in the stored data can possiblybe corrected. The errors may occur, for example, because of inter-symbolinterference, a defect in the disk, or noise. As the density of the datastored on the disk increases, more errors are likely, and the system isrequired to correct greater members of errors. The speed with which thesystem corrects the errors is important to the overall speed with whichthe system processes the data.

Prior to recording, multiple-bit data symbols are encoded using an errorcorrection code (ECC). When the data symbols are retrieved from the diskand demodulated, the ECC is employed to, as the name implies, correctthe erroneous data.

Specifically, before a sting of k data symbols is written to a disk, itis mathematically encoded using an (n, k) ECC to form n-k ECC symbols.The ECC symbols are then appended to the data string to form an n-symbolerror correction code word, which is then written to, or stored, on thedisk. When the data are read from the disk, the code words containingthe data symbols and ECC symbols are retrieved and mathematicallydecoded. During decoding, errors in the data are detected and, ifpossible, corrected through manipulation of the ECC symbols [for adetailed description of decoding see, Peterson and Weldon, ErrorCorrection Codes, 2nd Ed. MrT Press, 1972].

To correct multiple errors in strings of data symbols, the systemtypically uses an ECC that efficiently and effectively utilizes thevarious mathematical properties of sets of symbols known as Galoisfields. Galois fields are represented “GF (P^(m))”, where “P” is a primenumber and “m” can be thought of as the number of digits, base “P”, ineach element or symbol in the field. P usually has the value 2 indigital computer and disk drive applications and, therefore, m is thenumber of bits in each symbol. The ECC's commonly used with the GaloisFields are Reed Solomon codes or BCH codes.

There are essentially four major steps in decoding a corrupted code wordof a Reed-Solomon code or a BCH code. The system first determines errorsyndromes that are based on the results of a manipulation of the ECCsymbols. Next, using the error syndromes, the system determines an errorlocator polynomial which is a polynomial that has the same degree as thenumber of errors. The then finds the roots of the error locatorpolynomial and from each root determines the location of an associatederror in the code word. Finally, the system finds error values for theerror locations. In binary systems, such as digital computers, there isonly one possible error value for an error location, and thus, the stepof determining error values is trivial.

The steps of determining the syndromes and finding the error locationsare the most time consuming in the error correction process. Theinvention described herein reduces the time it takes the errorcorrection system to find the locations of either three or four errors.This involves finding the roots of third and fourth degree error locatorpolynomials.

In prior systems, the roots of degree-four polynomials are determined bytrial and error, or by matrix manipulation or look-up table. The trialand error method is performed by substituting into the polynomial everypossible value, i.e., every element of the applicable GF(2^(2m)) that isassociated with a code word location, and for each value evaluating thepolynomial. If the polynomial equals zero for a given value, the valueis a root. The system continues the trial and error process bysubstituting a next possible value into the polynomial and determiningif that value is a root; and so forth, until either all possible valueshave been tried or all four roots are determined. This trial and errorprocess, which in an optimized form is commonly known as a Chien Search,is time consuming. Further, the time is unpredictable, since it varieswith the locations of the errors in the code words.

The matrix manipulation and look-up table methods involve transforming ageneral degree-four polynomial of the form:

σ₄x⁴+σ₃x³+σ₂x²+σ₁x+σ₀

into a polynomial of the form:

x⁴+x²+ax+b.

If a look-up table is used, the table contains a set of solutions forevery possible set of values of a and b. For the ECCs used today,typically over GF(2⁸), the table has 2¹⁶ entries, each with 32 bits,i.e., four 8-bit elements. Thus, the table takes up a great deal ofstorage space and requires a relatively complex addressing scheme.

A system using the matrix manipulation method produces an 2^(m)-by-2^(m)matrix, by determining f(α), f(α¹), f(α²) . . . fa(.α⁽² ^(m) ⁻¹⁾), wheref(x)=x⁴+x²+ax+b. It next manipulates the matrix to determine the nullspace of the space spanned by the matrix. The roots of the polynomialcan then be obtained from the vectors that span the null space. [For amore detailed description see, E. R Berlekamp, Algebraic Coding Theory,McGraw Hill Book Company, 1968]. This method requires bit-by-bitmanipulation of an 2m-by-2m matrix and typically requires numerousmanipulation operations to transform the matrix. Thus, it is timeconsuming and computation intensive.

The inventive system described herein uses the invention discussed inpatent application Ser. No. 08/580,294 filed Dec. 28, 1995, now U.S.Pat. No. 5,761,102, which is assigned to a common assignee andincorporated herein by reference. The system determines the roots of thedegree-four polynomial by solving two quadradic equations. The systemmakes use of a well known method of deter the roots of a degree-twopolynomial, as descried by Berlekamp in Algebraic Coding Theory.Further, the system makes use of a method of determining the roots of adegree-three polynomial that is described by Van der Horst and Berger inComplete Decoding of Triple-Error-Correcting Binary BCH Codes, IEEETransactions on Information Theory, Vol. IT-22, pp. 138-147, 1976. Vander Horst and Berger have established that the method works for even-bitfields GF(2^(2m)) for m=2 and 3. In the above-referenced application itwas determined that the method works for at least even-bit fieldsGF(2^(2m)) for m=4, 5 and 6. We have determined that the method worksfor any GF(2^(2m)), as discussed below. We also provide herein a methodto determine the roots of a degree-four polynomial in any odd-bit fieldGF (2^(2m+1)), as discussed in more detail below.

Finding the roots of the degree-three polynomial in accordance with theteachings of Van der Horst and Berger and in accordance with our methodsdiscussed herein requires determining a cubic root of a Galois fieldelement over GF(2^(2m)) or GF(2^(2m+1)). We have developed an inventivecircuit for relatively quickly and easily finding the cubic roots in theeven-bit field GF(2^(m)), and in the odd-bit field GF(2^(2m+1)).

SUMMARY OF THE INVENTION

The invention is a system that determines the error locations of fourerrors in GF(2^(m)), for any m, by transforming a degree-four errorlocator polynomial ultimately into two quadratic equations, finding thesolutions of these equations, and from these solutions determining theroots of the error locator polynomial.

More specifically, the system first manipulates the degree-fourpolynomial:

σ(x)=σ₄ x ⁴+σ₃ x ³+σ₂ x ²+σ₁ x+σ₀  [1]

into the form:

θ(y)=y ⁴+θ₂ y ²+θ₁ y+θ₀  [2]

where the θ_(i)'s are combinations of the coefficients of the terms ofthe error locator polynomial. Note that the coefficient of the y³ termis zero. The system then factors θ(y) into:

θ(y)=(y ² +t*y+u)*(y ² +v*y+w)  [3]

where “*” represents multiplication, and expands the expression to:

θ(y)=y⁴+(t+v)y³+(t*v+u+w)y ²+(t*w+v*u)y+u*w,  [4]

where t, u, v and w are unknown. Equating the coefficients ofexpressions 2 and 3, the system determines that:

t+v=0

t*v+u*w=t ² +u*w=θ ₂

t*w+u*v=t+w+t*u=t*(w+u)=θ₁

u*w=θ ₀.  [5]

The system then produces an equation with the variable t as the onlyunknown:

t ³θ₂ t+θ₁=0  [6]

This degree-three equation can be solved in an even-bit field GF(2^(m)),in part, based on Cardan's Rule for real fields, which we have provencan be similarly applied to even-bit Galois Fields. Further, we use themethod described by Van der Horst and Berger, all as discussed in moredetail below. The degree-three equation can be solved in an odd-bitfield GF(2^(2m+1)), using a method that utilizes an even-bit extensionfield GF(2^(4m+2)) of the odd-bit field, as discussed in more detailbelow.

Once a root, t₀, of equation 6 is determined, the root is substitutedinto the expression for θ₁, and that expression and the expression forθ₀ are used to from a quadratic equation with u and w as the roots:

p ²+(θ₂ +t ₀ ²)p+θ ₀=0  [7]

The system then finds the roots, p₀ and p₁, of equation 7, usingBerlekamp's method for solving degree-two polynomials. The roots p₀ andp₁, which are u and w, respectively, are substituted into polynomial 3and each term is set to zero, to produce two quadratic equations:

y ² +t ₀ *y+p ₀=0

y ₂ +t ₀ *y+p ₁=0  [8]

The roots of equations 8, which are determined using the Berlekampmethod, are also the roots of θ(y), and they can thus be used directlyto produce the roots of the error locator polynomial.

This direct solution is faster than the prior trial and error or thematrix manipulation methods of finding the four roots. Further, it doesnot require the storage of and entry into the large look-up table thatis required in other prior known systems.

We perform a necessary step of finding cubic roots in GF(2^(2m)) andGF(2^(2m+1)) using inventive methods that require either a look-up tablethat is limited in size or no look-up table at all, as discussed in moredetail below.

BRIEF DESCRIPTION OF THE DRAWINGS

For a fuller understanding of the nature and objects of the invention,reference should be had to the following detailed description taken inconnection with the accompanying drawings, in which:

FIG. 1 is a functional block diagram of a decoder that is constructed inaccordance with the invention;

FIG. 2 is a flow chart of the operations of the decoder of FIG. 1 indetermining if roots of an equation are in GF(2^(2m+1));

FIGS. 3A and 3B are a flow chart of the operations that the decoder ofFIG. 1 performs in determining the locations of four errors;

FIG. 4 is a functional block diagram of a subsystem for determining thecubic roots of elements of GF(2^(m+1));

FIG. 5 is a functional block diagram of a subsystem for determining thecubic roots of elements of GF(2^(2m)); and

FIG. 6 is a functional block diagram of an alternative system fordetermining the cubic roots of elements of GF(2^(2m)).

DETAILED DESCRIPTION

The mathematical operations of addition, subtraction, multiplication anddivision discussed herein are Galois Field operations over theapplicable Galois Fields.

Referring now to FIG. 1, a decoder 10 includes a syndrome generator 12that operates in a conventional manner to produce an associated set oferror syndromes. If the syndromes are all zero, the syndrome generator12 determines that the code word is error-free. Otherwise, the syndromegenerator sends the syndromes to an error locator polynomial generator14, which produces in a conventional manner from the syndromes an errorlocator polynomial of degree “e”, where e is the number of errors in thecode word. The error locator polynomial generator 14 then sends theerror locator polynomial to an error locator processor 16, which selectsand implements an appropriate process for determining the roots of theerror locator polynomial, and thus, the error locations. FIG. 1 depictsthese processes as various blocks or processors, namely, a processor 18for determining one error location, a processor 20 for determining twoerror locations, a processor 22 for determining three error locations, aprocessor 24 for determining four error locations, and a processor 26for determining more than four error locations.

The two-, three- and four-error processors 20, 22 and 24 areinterconnected. As discussed below, the error locator processor 16reduces the time it takes to determine the locations of three and fourerrors by transforming the corresponding error location polynomialsultimately into associated sets of quadratic equations. To do this, thefour-error processor 24 makes use of both the three-error processor 22and the two-error processor 20. Similarly, the three-error processor 22makes use of the two-error processor 20. While these processes aredepicted as occurring in separate, dedicated processors, they may beperformed in one or more multi-purpose processors.

The error locator processor 16 determines the locations of one and twoerrors in a conventional manner. It determines the locations of threeerrors over GF(2 ^(2m)) in accordance with the method described by Vander Horst and Berger, and it uses a new method, which is based in parton the method described by Van der Horst and Berger, to determine thelocations of three errors over GF(2 ^(2m+1)). With either method forfinding three error locations, the processor 16 uses an inventivecircuit to perform a necessary step of determining the cubic root of aGalois Field element. This circuit and the method of determining thethree error locations are discussed below with reference to FIGS. 5-7.

The error locator processor 16 determines the locations of four errorsusing a process that is described in U.S. Pat. No. 5,761,102 filed Dec.28, 1995 entitled SYSTEM AND METHOD FOR DETERMINING THE CUBE ROOT OF ANELEMENT OF A GALOIS FIELD GF(2^(2m)) which is incorporated herein byreference. We have determined that this process can be used over anyGalois Field GF(2^(m)), as discussed below. The operations of theprocessor in determining the four error locations is also describedbelow with reference to FIG. 4.

A. Determining Two Error Locations

If the code word contains two errors, the error locator polynomial is ofthe form:

σ(x)=σ₂ x ²+σ₁ x+σ₀ x.  [1]

To find the roots of the polynomial, the system sets the polynomialequal to zero:

σ(x)=σ₂ x ²+σ₁ x+σ₀ x=0  [2]

and solves the equation for the solutions, x₀ and x₁.

To solve equation 2, the error locator processor 16 transforms theequation into the form:

y ² +y+C=0  [3]

by changing the variable to: $\begin{matrix}{x = {\frac{\sigma_{1}}{\sigma_{2}}y}} & \lbrack 4\rbrack\end{matrix}$

such that equation 2 becomes${\sigma \left( {\frac{\sigma_{1}}{\sigma_{2}}y} \right)} = {{\frac{\sigma_{1}^{2}}{\sigma_{2}}y^{2}} + {\frac{\sigma_{1}^{2}}{\sigma_{2}}y} + \sigma_{0}}$

Then, dividing by $\frac{\sigma_{2}}{\sigma_{1}^{2}},$

the system produces the equation: $\begin{matrix}{{y^{2} + y + \frac{\sigma_{0}\sigma_{2}}{\sigma_{1}^{2}}} = 0} & \lbrack 5\rbrack\end{matrix}$

and the C of equation 3 is thus$\frac{\sigma_{0}\sigma_{2}}{\sigma_{1}^{2}}.$

For a solution of equation 5 to exist in GF(2^(m)), the “traces” of bothsides of the equation must be the same. A trace is defined as:$\begin{matrix}{{{Trace}\left( \alpha^{i} \right)} = {\sum\limits_{k = 0}^{m - 1}\quad \left( \alpha^{i} \right)^{2^{k}}}} & \lbrack 6\rbrack\end{matrix}$

The Trace (0) equals 0, and thus, for solutions to exist within theGalois Field,

Trace [y ² +y+C]=0  [7]

The trace of a sum of terms is equal to the sum of the traces of theindividual terms. In GF(2^(m)), Trace (y²)=Trace (y) and their sum,using Galois Field addition, is zero. Accordingly, equation 5 has asolution in GF(2^(m)) if Trace (C)=0.

The general solution to equation 5 is a linear combination of m-1 “basesolutions.” A base solution is a solution to equation 3 with C as one ofthe “base elements” C₁, C₂ . . . C_(2m−1) of the Galois Field. The baseelements are those elements of the field that can be linearly combinedto produce all of the other elements of the field. These elements may,for example, be the set of 1m-1 elements that each include 1m-1 zerosand a single 1, i.e., α^(i)=000 . . . 1 to α^(i)=100 . . . 00. In such afield, C=00110 . . . 0 is a linear combination of base elements 00100 .. . 0 and 00010 . . . 0. The general solution to equation 5 is thelinear combination of the base solutions that correspond to the baseelements which are summed to produce$\frac{\sigma_{0}\sigma_{2}}{\sigma_{1}^{2}}.$

In GF(2⁴) which is defined by the generator polynomial x⁴+x+1, eachelement, α^(i), that has a trace of zero also has a zero as its mostsignificant bit. Accordingly; the C's of interest in this field arecombinations of the base elements α⁰=0001, α¹=0010 and α²=0100. Thecorresponding base solutions are: $\begin{matrix}{{\left( \alpha^{5} \right)^{2} + \alpha^{5}} = \alpha^{0}} & {{{with}\quad y_{0}} = \alpha^{5}} \\{{\left( \alpha^{9} \right)^{2} + \alpha^{9}} = \alpha^{1}} & {{{with}\quad y_{0}} = \alpha^{9}} \\{{\left( \alpha^{3} \right)^{2} + \alpha^{3}} = \alpha^{2}} & {{{with}\quad y_{0}} = \alpha^{3}}\end{matrix}$

Another set of base solutions are: $\begin{matrix}{{\left( \alpha^{10} \right)^{2} + \alpha^{10}} = \alpha^{0}} & {{{with}\quad y_{1}} = \alpha^{10}} \\{{\left( \alpha^{7} \right)^{2} + \alpha^{7}} = \alpha^{1}} & {{{with}\quad y_{1}} = \alpha^{7}} \\{{\left( \alpha^{14} \right)^{2} + \alpha^{14}} = \alpha^{2}} & {{{with}\quad y_{1}} = \alpha^{14}}\end{matrix}$

In this Galois Field, the solutions for equation 3 with C equal toα⁸=0101, for example, are determined by decomposing C into:

C=α ⁰+α²=0001+0100

and summing a corresponding wet of base solutions, for example:

y ₀=α⁵+α³=α¹¹

to produce a first root and determining a second root as:

y ₁ =y ₀+α⁰

Next the system determines the roots of the degree-two error locatorpolynomial as: $\begin{matrix}{x_{0} = {y_{0}\left( \frac{\sigma_{1}}{\sigma_{2}} \right)}} \\{x_{1} = {{y_{1}\left( \frac{\sigma_{1}}{\sigma_{2}} \right)}.}}\end{matrix}$

B. Determining Three Error Locations

In general, for any degree-three error locator polynomial, σ(x), thesystem determines error locations by solving:

σ(x)=σ₃ x ³+σ₂ x ²+σ₁ x+σ₀=0.  [8]

Accordingly, the system changes variable to$x = {y + \frac{\sigma_{2}}{\sigma_{3}}}$

and equation 1 becomes $\begin{matrix}{{\sigma \left( {y + \frac{\sigma_{2}}{\sigma_{3}}} \right)} = {{{\sigma_{3}\left( {y + \frac{\sigma_{2}}{\sigma_{3}}} \right)}^{3} + {\sigma_{2}\left( {y + \frac{\sigma_{2}}{\sigma_{3}}} \right)}^{2} + {\sigma_{1}\left( {y + \frac{\sigma_{2}}{\sigma_{3}}} \right)} + \sigma_{0}} = 0.}} & \lbrack 9\rbrack\end{matrix}$

which expands to:${{\sigma_{3}\left( {y^{3} + {y^{2}\frac{\sigma_{2}}{\sigma_{3}}} + {y\left( \frac{\sigma_{2}}{\sigma_{3}} \right)}^{2} + \left( \frac{\sigma_{2}}{\sigma_{3}} \right)^{3}} \right)} + {\sigma_{2}\left( {y^{2} + \left( \frac{\sigma_{2}}{\sigma_{3}} \right)^{2}} \right)} + {\sigma_{1}\left( {y + \frac{\sigma_{2}}{\sigma_{3}}} \right)} + \sigma_{0}} = 0$

and after collecting like terms and summing identical terms to zero theequation becomes: $\begin{matrix}{{{\sigma_{3}y^{3}} + {0y^{2}} + {\left( {\frac{\sigma_{2}^{2}}{\sigma_{3}} + \sigma_{1}} \right)y} + 0 + \frac{\sigma_{1}\sigma_{2}}{\sigma_{3}} + \sigma_{0}} = 0} & \lbrack 10\rbrack\end{matrix}$

The system then divides equation 10 by σ₃, and the equation becomes:

y ³ +αy+b=0  [11]

with${a = {{\frac{\sigma_{2}^{2}}{\sigma_{3}^{2}} + {\frac{\sigma_{1}}{\sigma_{3}}\quad {and}\quad b}} = {\frac{\sigma_{0}}{\sigma_{3}} + \frac{\sigma_{1}\sigma_{2}}{\sigma_{3}^{2}}}}},$

and y₀ is a solution of equation 11 if and only if$y_{0} + \frac{\sigma_{2}}{\sigma_{3}}$

is a solution of equation 8. Accordingly, we can determine the solutionsof equation 8 by determining the solutions of equation 11.

To determine if all of the roots of equation 4 are in GF(2^(2m)) i.e.,an even-bit field, we use Cardan's Rule as applied to even-bit GaloisFields. To determine if all of the roots of equation 4 are inGF(2^(2m+1)), which is an odd-bit field, we use the properties of aneven-bit extension field GF(2^(4m+2)), as discussed below. If all theroots are in the appropriate Galois Field, the system then finds thesolutions of equation 11 using for an even-bit field the methodsdiscussed the co-pending patent application, or if the system isoperating over an odd-bit field, using a modification of that method, asdiscussed in more detail in section B2 below.

One of the necessary steps in determining the roots of equation 11 isfinding cube roots. To do this, the error locator processor 16preferably uses the subsystem of FIGS. 5-7, as discussed below. Theerror locator processor 16 may instead determine the cube roots of anelement of GF(2^(2m)) using the operations described in the co-pendingpatent application.

B1. Solutions Over An Even-Bit Field GF(2^(2m))

According to Cardan's Rule as applied to even-bit Galois Fields,equation 11 has all three solutions y₁, y₂ and y₃ in GF(2^(2m)) if andonly if each root y_(i) is of the form$y_{i} = {x_{i} + \frac{a}{x_{i}}}$

where x_(i) ε GF(2^(2m)). This means that y_(i) is a root of equation 11if and only if

x _(i) ² +y _(i) x _(i) +a=0  [12]

has all solutions in GF(2^(2m)). As discussed in the co-pending patentapplication, an equation of the form of equation 12 has solutions inGF(2^(2m)) if the “traces” of both sides of the equation are the same,where a trace is defined as Tr(α)=α+α₂+ . . . +α² ^(2m) ⁻¹.

To determine the trace of the left-hand side of the equation 12, wefirst define in Step 202 for a polynomial Q(x)=(x−α₁) (x−α₂) (x−α₃) . .. (x−α_(n)), a function p(Q(x)):${p\left( {Q(x)} \right)} = {\sum\limits_{1 \leq i \leq j \leq n}{\frac{\alpha_{i}\alpha_{j}}{\left( {\alpha_{i} + \alpha_{j}} \right)^{2}}.}}$

We then determine if the trace of the functions, i.e., Tr(p), for theleft-hand side of equation 12 is the same as the trace of the right-handside of the equation, i.e., Tr(0), which is equal to zero.

The polynomial of interest, x_(i) ²+y_(i)x_(i)+a=(x−α₁) (x−α₂), withα₁+α₂=y_(i) and α₁α₂=a, and${p\left( {x_{i}^{2} + {y_{i}x_{i}} + a} \right)} = {\frac{\alpha_{1}\alpha_{2}}{\left( {\alpha_{1} + \alpha_{2}} \right)^{2}} = {\frac{a}{y_{i}^{2}}.}}$

Accordingly, equation 12 has solutions in GF(2^(2m)) if and only if$\begin{matrix}{{{Tr}\left( \frac{a}{y_{i}^{2}} \right)} = 0.} & \lbrack 13\rbrack\end{matrix}$

Further, we determine at equation 11 has all solutions in GF(2^(2m)) bydetermining if Tr(p(y³+ay+b))=0, which means that${{Tr}\left( {\frac{a^{3}}{b^{2}} + 1} \right)} = 0.$

Over GF(2^(2m)), in which Tr(1)=0,${{{{Tr}\left( \frac{a^{3}}{b^{2}} \right)} + {{Tr}(1)}} = {{{Tr}\left( \frac{a^{3}}{b^{2}} \right)} + 0}},$

and thus if all solutions are GF(2^(2m)), $\begin{matrix}{{{Tr}\left( \frac{a^{3}}{b^{2}} \right)} = 0.} & \lbrack 14\rbrack\end{matrix}$

Since all solutions are in GF(2^(2m)), the system determines the rootsof equation 11 and then the roots of equation 8. The system may use themethod of determining the roots of degree-three polynomials described inthe co-pending application. Specifically, using equation 11

y ³ +αy+b=0  [11]

and if α≠0, the processor 16 changes variable to: $\begin{matrix}{y = {z + \frac{a}{z}}} & \lbrack 15\rbrack\end{matrix}$

and equation 4 becomes $\begin{matrix}{{\left( {z + \frac{a}{z}} \right)^{3} + {a\quad \left( {z + \frac{a}{z}} \right)} + b} = 0.} & \lbrack 16\rbrack\end{matrix}$

It next expands equation 16 and collects like terms to produce:$\begin{matrix}{{z^{3} + {\frac{a}{z}z^{2}} + {\left( \frac{a}{z} \right)^{2}z} + \left( \frac{a}{z} \right)^{3} + {az} + \frac{a^{2}}{z} + b} = {{z^{3} + {az} + \frac{a^{2}}{z} + \frac{a^{3}}{z^{3}} + {az} + \frac{a^{2}}{z} + b} = {{z^{3} + \frac{a^{3}}{z^{3}} + b} = 0.}}} & \lbrack 17\rbrack\end{matrix}$

The system next multiplies equation 17 by z³ to produce

(z ³)² +bz ³ +a ³=0,  [18]

which is a quadratic equation with z³ as the variable. Equation 18 canthen be solved using the two-error method discussed in Section A.

Once one solution, z₀₃, is determined, the system finds the cubic root,z₀, which is a solution to equation 11. The operations of the system todetermine the cubic root are described below with reference to FIGS. 5and 6. The system determines a second solution, z_(i):$z_{1} = {z_{0}*\alpha^{\frac{2^{{2m} - 1}}{3}}}$

where the exponent $\frac{2^{2m} - 1}{3}$

is always an integer, since 2^(2m)−1 is divisible by 3, and a thirdsolution:

z ₂ =z ₁ +z ₀

The system then uses these solutions to determine the roots x₀, x₁, andx₂ of the degree-three error locator polynomial of equation 8. Thesystem thus substitutes the solutions z_(i) into the expression for y,and individually adds the results of the substitution to$\frac{\sigma_{2}}{\sigma_{3}}$

to produce the roots x₀, x₁ and x₂.

If a=0, the solution to equation 18 is y=b^(⅓). To find the cubic rootof b the system again uses the circuit depicted in FIG. 5 or 6. Once thecubic root is known, the system determines y₁ and y₂ as:${y_{1} = {{y_{0}*\alpha^{\frac{2^{{2m} - 1}}{3}}\quad {and}\quad y_{2}} = {y_{0} + y_{1}}}},$

and from these values determines the roots x₀, x₁ and x₂.

B2. Solutions Over An Odd-Bit Field GF(2^(2m+1))

When the system is operating over GF(2^(2m+1)), and equation 11

y ³ +αy+b=0  [11]

has all solutions in GF(2^(2m+1)), we know that${{Tr}\quad \left( {\frac{a^{3}}{b^{2}} + 1} \right)} = 0$

and thus ${{Tr}\quad \left( \frac{a^{3}}{b^{2}} \right)} = 1$

since Tr(1)=1 in the odd-bit field. This means that the equation 18

(z ³)² +bz ³ +a ³=0  [18]

has no roots in GF(2^(2m+1)). Thus, the error locator processor 16cannot use the method described above to determine the solutions ofequation 11 in the odd-bit field.

The error locator processor 16 instead determines the roots in aneven-bit extension field of the odd-bit field, namely, GF(2^(4m+2)),which is defined as GF(2^(4m+2))=GF(2^(2m+1))[x]/(x²+x+1)=(αx+β|α,βεGF(2^(2m+1))} with multiplication defined by:

(α₁ x+β₁) (α₂ x+β ₂) modulo x ² +x+1

such that

(α₁ x+β₁) (α₂ x+β ₂)=(α₁α₂+α₁β₂+α₂β₁, α₁α₂+β₁β₂).

A simplified way to express GF(2^(4m+1)) is

GF(2^(4m+2))={(α,↑)|α,βεGF(2^(2m+1))}.

Further, the odd-bit field GF(2^(2m+1))={0+β|(0,β) εGF(2^(4m+2))}. Thismeans that we can perform multiplication operations over the extensionfield by manipulating the 2^(2m+1) bit elements of GF(2^(2m+1)) in thepairs that represent elements of GF(2^(4m+2)).

Using the extension field, we can show that since the equation:

y ³ +ay+b=0  [11′]

has solutions in GF(2^(2m+1)), the equation

(z ³)² +bz ³+(a ³ +b ²)=0  [18′]

also has all solutions in GF(2^(2m+1)). Using Cardan's Rule as appliedto even-bit Galois Fields, we can show that every solution (b, z_(i)) isa cube of (s,t) ε GF(2^(4m+2)), and that

(b,z _(i))=(s,t)³

such that s, t and s+t are all solutions of equation 11′. The value ofz_(i) is determined using the two-error method discussed in Section Aover GF(2^(4m+1)). The cubic root of z_(i) is determined using one ofthe subsystems described below with reference to FIGS. 4-6.

Referring now to FIG. 2, as an example, we determine the roots of

(y ₁ , y ₂)³+(0, a)(y ₁ , y ₂)+(0,b)=0  [11*]

over GF(2¹⁸), which is an extension field of GF(2⁹), with a=α⁴¹ andb=α¹³. First, we substitute variables and produce in GF(2¹⁸) thepolynomial

(z ₁ , z ₂)²+(0, α¹³)(z ₁ , z ₂)+(0, α⁴¹)³=(0,0)  [18*]

which is equation 18′ over GF(2¹⁸). Next, in step 204 we multiply theterms out to produce

(z ₁ ² , z ₁ ² +z ₂ ²)+(z ₁α¹³, α¹³ z ²)+(0,(α⁴¹)³)=(0,0)

and equate the terms of the various pairs:

z ₁ ² +z ₁α¹³=0

z ₁ ² +z ₂ ² +z ₂α¹³+α¹³+(α⁴¹)³=0

and in step 206 solve for z₁:

z ₁=α¹³

We then substitute z₁=α¹³ to produce:

z ² ₂+(α¹³)² +z ₂α¹³+(α⁴¹)³ =z ₂ ²+α¹³ z ₂+(α⁴¹)³+(α¹³)²=0  [18′]

which is equation 18′ with Z₂=Z³, and solve for the roots of thisequation using the method of section A (step 208). The multiplicationoperations used to determine the roots involve the 2⁹-bit elements ofequation 18′. The roots of equation 18′ are Z₂₀=α⁹⁵ and Z₂₁=α¹¹⁷, andthus, the roots of equation 18* are z₀₁=(α¹³, α⁹⁵) and z⁰²=(α¹³, α¹¹⁷).In step 210, the system determines the cubic roots of z₀₁ and z₀₂, whichare equal, and are (α¹³², α¹³¹)=(s,t). The roots of equation 11* are ofthe form$\left( {y_{1},y_{2}} \right) = {\left( {x_{1}x_{2}} \right) + \frac{\left( {0,a} \right)}{\left( {x_{1}x_{2}} \right)}}$

and we determine in step 212 that the roots of equation 11′ are s, t ands+t or α¹³²; α¹³¹; α¹³²+α¹³¹=α²⁶¹. The system thus finds roots over theextension field GF(2⁹), while making its computations over GF(2).

C. Finding the Roots Of Degree-Four Error Locator Polynomials

Referring to FIG. 3, and as discussed in the co-pending pentapplication, the error locator processor 16 can determine the roots of adegree-four polynomial,

h(x)=σ₄ x ⁴+σ₃ x+σ₂ x ²+σ₁ x+σ₀

in steps 300-306 by transforming the polynomial into

j(x)=y ⁴ +a ₂ y ² +a ₁ y+a ₀

and then in step 308 transforming the polynomial into two quadraticexpressions, namely,

j(x)=y ² +ty+u)(y ² +uv+w)

The system in step 310 solves for the values of t, u, v and w, anddetermines that the roots of j(x) are

t=v, tv+u+w=a ₂ , tw+uv=a ₁ and uw=a ₀.

The system in step 312 next determines an expression in which t is theonly unknown, namely,

t ³ +a ₂ t=a ₁=0

and in steps 314-316 solves for t using the methods discussed above overthe appropriate odd- or even-bit field. The system then in step 318-320determines the roots of h(x) based on the substitution of variablesbetween h(x) and j(x).

We now discuss how the system determines cubic roots in even- andodd-bit fields.

D. Cubic Roots In An Odd-Bit Field

In GF(2^(2m+1)), every element has one and only one cubic root in thefield. For each element β of GF(2^(2m+1)) there is an element β^(u)$u = \frac{2^{{2m} + 2} - 1}{3}$

in GF(2^(2m+1)). Further, there is also an element

(β^(u))³=β² ^(2m+2) ⁻¹  [20]

But 2^(2m+2)=2^(2m+1)+2^(2m+1) and equation 20 can be rewritten

(β^(u))³=β² ^(2m+1) *β² ^(2m+1) ⁻¹  [21]

In GF(2^(2m+1)), any element, α, raised to the 2^(2m) power, i.e., α²^(2m) , equals α⁰=1 and any element raised to the 2^(2m+1) power isequal to the element, since α² ^(2m+1) =α² ^(2m) *α¹=α.

Accordingly, β² ^(2m+1) =β in expression 21 and

β² ^(2m+1) *β² ^(2m+1) ⁻¹=β¹*(β¹*β⁻¹)=β(β⁰)=β,

which means that β^(u) is the cube root of β.

Referring now to FIG. 4, a subsystem 400 determines the cubic root of anelement β in GF(2^(2m+1)) by raising that element to the power u inmultipliers 402, which include of one or more conventional Galois Fieldmultipliers. In, for example, GF(2³), the multipliers 402 raise theelement β to the power:$\frac{2^{{2{(1)}} + 2} - 1}{3} = {\frac{2^{4} - 1}{3} = 5}$

The multipliers 402 thus produce

β⁵=(α^(i))⁵=α^(5i)

by, for example, raising B to B² ² and multiplying the result by B. Ifi=2, β=α², and the cube root is α¹⁰, which in GF(2³) is α³. To test ifα³ is the cube root of α², we multiply α³*α³*α³=α⁹ and α⁹=α²*α⁷, whereα⁷=α⁰=1 in GF(2³). Accordingly, the product (α³)³=α², and α³ is thus thecubic root of α².

E. Cubic Roots In An Even-Bit Field

Some elements of GF(2^(2m)) do not have cubic roots in the field.Further, determining cubic roots in GF(2^(2m)) for those elements thatdo have roots is more complicated than determining the cubic roots ofelements of an odd-bit field.

The system may use the method described in the co-pending application todetermine the cubic roots of an element of GF(^(2m)). Using this method,the system raises an element β of GF(2^(2m)) to powers that correspondto factors of the identity 2^(2m)−1=(2^(m)−1)*(2^(m)+1), which for anyvalue of m has one factor that is divisible by three and one factor thatis not. The system then produces the values:$\gamma_{1} = {{\beta^{2^{m} + \varepsilon}\quad {and}\quad \ldots \quad \gamma_{2}} = \beta^{\frac{2^{m} - s}{3}}}$

where ε=1 if m is even and ε=−1 if m is odd.

The system next enters a look-up table to determine the cubic root ofγ₁, which has the exponent that is not divisible by three. The systemthen produces the product: $\begin{matrix}{{\gamma_{1}^{1/3}\gamma_{2}} = {{\left( \beta^{2^{m} + ɛ} \right)^{1/3}*\beta^{\frac{2^{m} - ɛ}{3}}} = \left( \beta^{1/3} \right)^{2^{m + 1}}}} & \lbrack 22\rbrack\end{matrix}$

Finally, the system raises this product to the 2^(m−1) power, to produce(β^(⅓))² ^(2m) which in GF(2^(2m)) is (β^(⅓))¹ or the cube root β^(⅓).

This method uses a look-up table of a particular size for a given valueof m. In a system with limited storage space that requires a smallertable or in which no table can be used, the system may insteadincorporate, respectively, the subsystem 500 or subsystem 600 discussedbelow with reference to FIGS. 5 and 6.

1. A Limited Look-Up Table Method

We define a variable “N” as

N=2^(2m)−1=(2²−1)((2²)^(m−1)+(2²)^(m−2)+ . . . +1),

which is divisible by 3. There are integer values “e” and “N₀” such thatN=3^(e)N₀ and the greatest common divisor of 3 and N₀ is 1. If L is afactor of N₀, L is also a factor of 2^(2m)−1 and the greatest commondivisor of L and 3 is 1. If we define a variable “q” as an integer where

2^(q−1) <L<2¹+1

there is then an integer “K” such that

2^(q)=3K+1 or 3K=2

and we can define an integer pair$\left( {Q,V} \right) \equiv \left\{ \begin{matrix}{{{\left( {q,0} \right)\quad \ldots \quad {{if}\quad.L}} = 2^{q}}\quad} \\{{{\left( {q,{K - l}} \right)\quad \ldots \quad {{if}\quad.L}} = {{{3b} + {1\quad \ldots \quad {and}\quad \ldots \quad 2^{q}}} = {{3K} + 1}}}\quad} \\{{{\left( {{q + 1},{{{.2}K} - l}} \right)\quad \ldots \quad {{if}\quad.L}} = {{{3b} + {2\quad \ldots \quad {and}\quad \ldots \quad 2^{q}}} = {{3K} + 1}}}\quad} \\{{\left( {{q + 1},{{{.2}K} - l + 1}} \right)\quad \ldots \quad {{if}\quad.L}} = {{{3b} + {1\quad \ldots \quad {and}\quad \ldots \quad 2^{q}}} = {{3K} = 2}}} \\{{\left( {q,{K - l + 1}} \right)\quad \ldots \quad {{if}\quad.L}} = {{{3b} + {2\quad \ldots \quad {and}\quad {\ldots 2}^{q}}} = {{3K} = 2}}}\end{matrix} \right.$

where “b” is any integer. We then can say L+₃V=2^(Q).

If α is the primitive element of GF(2^(2m)) there is a smallest positiveinteger “s” such that

(α^(3L))^(s)=1

since 3L is a factor of 2^(2m)−1. This is true when 3Ls=2² ^(2m) ⁻¹ oran integer multiple thereof since α² ^(2m−) ¹=1 in GF(2^(2m)). We canthen define a set T:

T={α^(i3L) |i=0,1, . . . , s−1}.

and a mapping function${{M(\gamma)} = {\gamma^{1/3} = {\alpha^{iL}\alpha^{l\frac{2^{2m} - 1}{3}}}}},$

where γ=α^(i3L) εT and l is an element of {0,1,2}. This mappingfunction, which essentially implements the equation 22 of the priormethod, maps α^(i3L)=β^(L), to

(β^(L))^(⅓)=α^(iL) A

where $A = \frac{l\left( {2^{m} - 1} \right)}{3}$

for some l ε {0,1,2}, A is divisible by 3, and A³=1.

The mapping function M(γ) can be implemented in a look-up table, whichhas s elements. For larger values of m, this table contains fewerelements than the look-up table of the method described in theco-pending application. For smaller values of m and thus smaller fieldsGF(2^(2m)), however, the size of this table is the same size as thetable used in the prior method.

For a given element β=α^(3i)ε GF(2^(2m)) the mapping function M produces(β^(L))^(⅓)=α^(iL)A. This product is then converted to the cubic root ofβ by first multiplying the product by β^(V):

(β^(L))^(⅓)β^(V)=α^(iL) Aα ^(3iV)  [23]

substituting L+3V=2^(Q) into equation 23:

(β^(L))^(⅓)β^(V)=(α^(i))² ^(Q) A  [24]

Then, raising both sides of equation 24 to the 2^(2m−Q) power:$\left( {\left( \beta^{L} \right)^{\frac{1}{3}}\beta^{v}} \right)^{2^{{2m} - Q}} = {{\left( \alpha^{{2}^{Q}} \right)^{2^{{2m} - Q}}A^{2^{{2m} - Q}}} = {{\left( \alpha^{i} \right)^{2^{2m}}A^{2^{{2m} - Q}}} = {\alpha^{i}A^{2^{{2m} - Q}}}}}$

Since A³=1 and α^(i)=β^(⅓), we can show that$\left. \left. \left\lbrack {\left( \beta^{L} \right)^{\frac{1}{3}}{\beta^{V}}} \right. \right)^{2^{{2m} - Q}} \right\rbrack^{3} = {\left( {\beta^{\frac{1}{3}}A^{2^{{2m} - Q}}} \right)^{3} = {\left( {\beta (1)} \right)^{2^{{2m} - Q}} = \beta}}$

and$\left( {\left( \beta^{L} \right)^{\frac{1}{3}}\beta^{V}} \right)^{2^{{2m} - Q}}$

is thus a cubic root of β, and further:

β^(⅓)=(M(β^(L))β^(V)))² ^(2m−Q)   [25 ]

The exponents L and V can be expressed as sums of powers of two:$L = {{\sum\limits_{i = 0}^{n_{l}}\quad {l_{i}2^{i}\quad {and}\quad V}} = {\sum\limits_{i = 0}^{n_{v}}\quad {v_{i}2^{i}}}}$

and thus, raising the element β to the powers of L and V is readilyimplemented in hardware using conventional Galois Field multipliers.

Referring now to FIG. 5, a subsystem 500 determines the cubic root of anelement β of GF(2^(2m)) by first raising the element to the power L inmultipliers 502. The subsystem then uses the value β^(L) to enter alook-up table 504 that contains the results of mapping β^(L) to(β^(L))^(⅓). The value read from the table 504 is then multiplied inmultiplier 508 by β^(V), which is produced in multipliers 506. Next, theproduct (β^(L))^(⅓) β^(V) is raised to the power 2^(m−Q) in multipliers510, to produce a cubic root (β)^(⅓).

The values of L, Q and V are given in Table I below for GF(2^(2m)) for3<m≦15. The number of elements, s, in the look-up table is also includedin the table. The value of L is chosen to minimize the number ofelements in the look-up table. Also, if possible L is chosen such thatthere is a minimal number of non-zero values for l_(i) and v_(b)respectively.

TABLE I 2m 2^(2m) − 1 L Q V s 6 3² * 7 7 4 3 3 8 3 * 5 * 17 17 5 5 5 103 * 11 * 31 31 6 11 11 12 3² * 5 * 7 * 13 1365 9 19 3 14 3 * 43 * 127127 8 43 43 16 3 * 5 * 17 * 257 4369 14 4005 5 18 3³ * 7 * 19 * 73 970914 2225 9 20 3 * 5² * 11 * 31 * 41 69905 17 20389 5 22 3 * 23 * 89 * 68360787 16 1583 23 24 3² * 5 * 7 * 13 * 17 * 241 1864135 22 776723 3 263 * 2731 * 8191 8191 14 2731 2731 28 3 * 5 * 29 * 43 * 113 * 12717895697 26 16404389 5 30 3² * 7 * 11 * 31 * 151 * 331 119304647 274971027 3

2.No Look-Up Table Method

Consider first that an even-bit field GF(2^(4m+2)) is an extension fieldof the odd-bit field GF(2^(2m+1)), and thus, the odd-bit field is asub-field of the even-bit field. If α is the primitive element ofGF(2^(4m+2)), every element β of GF(2^(2m+1)) can be expressed as

β=(α^(i))² ^(2m+1) ⁺¹

for some integer i. Since 2^(2m+1)+1 is divisible by 3, there is inGF(2^(4m+2)) a first cubic root: $\begin{matrix}{{\left( \alpha^{i} \right)2^{{2m} + 1}} + \frac{1}{3}} & \lbrack 26\rbrack\end{matrix}$

which is an element of the odd-bit field GF(2^(m) ^(₀) ), where m₀ is anodd integer.

The root may not, however, be an element of GF(2²m+¹).

There are two additional roots that are related to the first root,namely $\begin{matrix}{\alpha^{i^{\frac{({2^{{2m} + 1} + 1})}{3} + \frac{({2^{{4m} + 2} - 1})}{3}}} = \left( \alpha^{\frac{1}{3}} \right)^{{{({{2m} + 1_{+ 1}})}} + \frac{2^{{4m} + 2} - 1}{3}}} & \lbrack 27\rbrack \\{and} & \quad \\{\alpha^{i^{\frac{({2^{{2m} + 1} + 1})}{3} + \frac{({2^{{4m} + 2} - 1})}{3}}} = \left( \alpha^{\frac{1}{3}} \right)^{{{({{2m} + 1_{+ 1}})}} + {2{({2^{{4m} + 2} - 1})}}}} & \lbrack 28\rbrack\end{matrix}$

which are determined, respectively, by multiplying the first root by α²^(4m+2) ⁻¹=α⁰=1 and α²⁽² ^(4m+2) ⁻¹⁾=α⁰+α⁰=α⁰=1. The cubic roots inGF(2^(4m+2)) are thus: $\begin{matrix}{\beta^{\frac{1}{3}} = {\beta^{u} = \alpha^{i^{\frac{({2^{{2m} + 1} + 1})}{3} + \frac{l{({2^{{4m} + 2} - 1})}}{3}}}}} & \lbrack 29\rbrack\end{matrix}$

where the root is also an element of the odd-bit field GF(2^(2m+1)) forl equal to one of {0,1,2}. We now use this result to determine the cubicroot of an element of any even-bit field GF(2^(2m)).

The even-bit field GF(2^(2m)) is an extension field of the odd-bit fieldGF(2^(m) ^(₀) ), where m=2^(k)m₀ and m₀ is an odd integer. For example,with GF(2⁴) m=2, and k=1 and m₀=1 and the field is an extension field ofGF(2); with GF(2²⁶), m=13, and k=0 and m₀=13, and the field is anextension field of the odd-bit field GF(2¹³) and so forth.

Also, we can show that

2^(2m)−1=(2^(m) ^(_(o)) −1)N

where N=(2^(m) ^(₀) +1)N₀ and N₀ is a positive integer. To do this wesubstitute 2^(k)m₀ for m and repeatedly use the identityx²−1=(x−1)(x+1), where x=2^(m) ^(₀) )² ^(k) in a first iteration.

For every βε GF(2^(2m)), β^(N) is an element of GF(2^(m) ^(₀) ). Since2^(m) ^(₀) +1 is divisible by three,

N=3^(e)L

where e>0 and L is not divisible by three. We use these results below todetermine the cubic roots when e=1 and when e>1 in Sections 2a and 2b,respectively.

2a. When e=1

To find the cubic root of an element β of GF(2^(2m)), with

β=α^(3i)

where α is the primitive element of GF(2^(2m)), the system first raisesthe element β to the power {fraction (N/3+L )} to produce:$\beta^{\frac{N}{3}} = {\left( \beta^{\frac{1}{3}} \right)^{N} = \left( \alpha^{i} \right)^{N}}$

which is an element of the odd-bit field GF(2^(m) ^(₀) ). As discussedabove, the system then determines the cubic root over the odd-bit fieldby raising the element to the power $u = \frac{2^{m_{0} + 1} - 1}{3}$

which based on equation 29 is: $\begin{matrix}{\left( \beta^{\frac{N}{3}} \right)^{u} = {{\left( \beta^{\frac{N}{3}} \right)^{1/3}*\alpha^{\frac{l{({2^{m} - 1})}}{3}}} = {{\left( \left\lbrack \left( \alpha^{3i} \right)^{\frac{3L}{3}} \right\rbrack \right)^{1/3}*\alpha^{l{(\frac{2^{m} - 1}{3})}}} = {{\alpha^{iL}*\alpha^{l}2^{m}} - \frac{1}{3}}}}} & \lbrack 30\rbrack\end{matrix}$

where lε {0,1,2}, and for one of these values the cubic root is anelement of GF(2^(m) ^(₀) ). Letting$A = \alpha^{l{(\frac{2^{m} - 1}{3})}}$

the result of equation 30 is rewritten as: $\begin{matrix}{\left( \beta^{\frac{N}{3}} \right)^{u} = {\alpha^{iL}{A.}}} & \lbrack 31\rbrack\end{matrix}$

Multiplying both sides of equation 31 by β^(V) $\begin{matrix}{{\beta^{V}\left( \beta^{\frac{N}{3}} \right)}^{u} = {{\left( \alpha^{iL} \right)\left( \beta^{V} \right)} = {{{A\left( \alpha^{iL} \right)}\left( \left( \alpha^{3i} \right)^{V} \right)A} = {\left( \alpha^{i} \right)^{L + {3V}}A}}}} & \lbrack 32\rbrack\end{matrix}$

substituting L+3V=2^(Q) into equation 32: $\begin{matrix}{{\beta^{V}\left( \beta^{\frac{N}{3}} \right)}^{u} = {\left( \alpha^{i} \right)^{2^{Q}}A}} & \lbrack 33\rbrack\end{matrix}$

further substituting β^(L) for β^({fraction (N/3)}) in equation 33:β^(V)[(β^(L))]^(u) = (α^(i))^(2^(Q))A

and raising both sides to the power 2^(2m−Q), we produce:$\left\lbrack {\left( \beta^{L} \right)^{u}\beta^{v}} \right\rbrack^{2^{{2m} - Q}} = {{\alpha^{i}A^{2^{{2m} - Q}}} = {\beta^{\frac{1}{3}}A^{2^{{2m} - Q}}}}$

which, as discussed above is the cube root of β, sine A³=1.

Referring now to FIG. 6 a subsystem 600 determines the cubic root of anelement β of GF(2^(2m)) by first raising the element to the L power inmultipliers 602, and then raising the result to the u power inmultipliers 604. The subsystem next multiplies in multipliers 608 theproduct (β^(L))^(u) by β^(V), which is produced by multipliers 606, andin multipliers 610 raising the result to the 22 power.

2b. When e>1

As discussed above, we raise βε GF(2^(2m)) to the {fraction (N/3+L )}power to produce

β^({fraction (N/3)})=(α^(i))^(N)

which is an element of GF(2^(m) ^(₀) ). Then, we raise the result to thepower $u = \frac{2^{m_{0} + 1} - 1}{3}$

to produce $\begin{matrix}{\left( \beta^{\frac{N}{3}} \right)^{u} = {\left( \alpha^{\quad N} \right)^{u^{e}} = {\alpha^{{3}^{e - 1}L}l_{1}\frac{2^{{2m} - 1}}{3}}}} & \lbrack 26\rbrack\end{matrix}$

where l₁ is one of {0, 1, 1}. The root, which is an element of GF(2^(m)^(₀) ), is then raised to the u power and so forth until we produce theproduct $\begin{matrix}{\left( \beta^{\frac{N}{3}} \right)^{u^{e}} = {\left( \alpha^{i^{N}} \right)^{u^{e}} = {\alpha^{i^{L}}A_{e}}}} & \lbrack 27\rbrack\end{matrix}$

where A_(e) is equal to α to the power$\sum\limits_{j = 1}^{e}\quad {l_{j}\frac{2^{2m} - 1}{3^{ - j + 1}}}$

Next, we multiply both sides of equation 27 by β^(V)=α^(3iV), to produce$\begin{matrix}{{\left( \beta^{\frac{N}{3}} \right)^{u^{e}}\beta^{V}} = {\alpha^{iL}\alpha^{i3V}}} & \lbrack 28\rbrack\end{matrix}$

and substitute L+3V=2^(Q) into equation 28 to produce${\left( \beta^{\frac{N}{3}} \right)^{u^{e}}\beta^{V}} = {\left( \alpha^{i} \right)^{2^{Q}}{A.}}$

We then raise both sides to the 22 power:$\left\lbrack {\left( \beta^{\frac{N}{3}} \right)^{u^{e}}\beta^{V}} \right\rbrack^{2^{{2m} - Q}} = {\alpha^{i}A^{2^{{2m} - Q}}}$

However α^(i)=β^(⅓), and we have${\beta^{\frac{1}{3}}A} = \left\lbrack {\left( \beta^{\frac{N}{3}} \right)^{u^{e}}\beta^{V}} \right\rbrack^{2^{{2m} - Q}}$

Since$\left( A^{2^{{2m} - Q}} \right)^{3} = \left( \alpha^{\sum\limits_{i = 1}^{e - 1}\quad l_{\frac{2^{{2m} - 1}}{^{^{e} - j}}}} \right)^{2^{{2m} - Q}}$

it may not equal 1, which means that α^(i)A² ^(2m−Q) may not be a cubicroot of β. However,

(A² ^(2m−Q) )³ ^(e) =1

and thus (α^(i)A² ^(2m−Q) )³ ^(e) =(α^(i3))^(e)=β^(e)

and$\beta = {\left( {\alpha^{i}A^{2^{{2m} - Q}}} \right)^{3}\alpha^{k\frac{2^{2m} - 1}{3^{e - 1}}}}$

for some k ε {0, 1, 2 . . . 3^(e−1)−1}, and thus, $\begin{matrix}{\beta^{\frac{1}{3}} = {\left( {\alpha^{i}A^{2^{{2m} - Q}}} \right)\alpha^{k\frac{2^{2m} - 1}{3^{e}}}}} & \lbrack 28\rbrack\end{matrix}$

The cubic roots can then be found by trying different values of k andtesting the result by cubing it.

Alternatively, a look-up table with 3^(e−1) elements may be used todetermine the cubic root. Since

(α^(i) A ² ^(2m−Q) )³ ^(e) =β(A ² ^(2m−Q) )³

we can determine (A ^(2m−Q))³ by dividing (α^(i)A² ^(2m−Q) )³ by β.There are at most 3^(e−1) possible values of kA² ^(2m−Q) , namely,${kA}^{2^{{2m} - Q}} = \alpha^{\sum\limits_{i = 1}^{e - 1}\quad {l_{k}j\frac{2^{{2m} - 1}}{3^{e - j - 1}}}}$

for l_(kj) ε{0,1,2}

such that$A^{2^{{2m} - Q}} = \alpha^{\sum\limits_{i = 1}^{e - 1}\quad {l_{k}j\frac{2^{{2m} - 1}}{3^{e - j - 1}}}}$

The look-up table is entered with the value k³A² ^(2m−Q) and producesthe value kA² ^(2m−Q) . Then, the cubic root of β is:$\frac{\alpha^{i}A^{2^{2^{{2m} - Q}}}}{{kA}^{2^{{2m} - Q}}} = {\alpha^{i}\alpha^{{le}\frac{({2^{2m} - 1})}{3}}}$

We list below in Table II the values of N, e, u, Q and V forGF(2^(2m))3m≦15. When e=1, no look-up table is used. When e>1, thesubsystem may use a look-up table of the size 3^(e−)1, which is listedin the last column of the table. An entry of 0 in the column indicatesthat no table is used. Alternatively, various values of k may instead besubstituted into equation 28, to determine the cubic roots.

TABLE II 2m m₀ N/3 e u Q V s 6 3 3 2 5 0 0 3 8 1 85 1 1 8 57 0 10 5 11 121 5 7 0 12 3 195 2 5 7 22 3 14 7 43 1 85 6 7 0 16 1 21845 1 1 15 3642 018 9 171 3 341 6 15 9 20 5 11275 1 21 14 1703 0 22 11 683 1 1365 11 4550 24 3 798915 2 5 20 260757 3 26 13 2731 1 5461 12 155 0 28 7 704555 185 21 464199 0 30 15 10923 2 21845 13 1517 3

What is claimed is:
 1. A method of operating a data processing system todetermine the locations of erroneous symbols in a code word overGF(2^(2m+1)), the method including the steps of: i. receiving a codeword with erroneous data symbols; ii. determining an associated errorlocator polynomial; iii. transforming the error locator polynomial to adegree three polynomial; iv. substituting variables in the degree threepolynomial to produce in an extension field GF(2^(4m+2)) an equation(y₁, y₂)³+(0,b)(y₁, y₂)+(0, a)=0; v. substituting variables to produce aquadratic equation (z₁, z₂)²+(0,b) (z₁, z₂)+(0,a)³=0 where (z₁, z₂) isan element of GF(2^(4m+2)) and solving the quadratic equation for (z₁,z₂); vi. determining the cube root, (s,t), of (z₁, z₂); vii. determiningthe roots, s, t, and s+t, of the equation of step iv based on the valueof (s,t) of step vi; and viii. determining that the code word symbolsassociated with the code word locations that correspond to the roots s,t and s+t are erroneous; and ix. based on the location information a.correcting errors in the data symbols of the code word, b. labeling thecode word as uncorrectable, or c. requesting that the code word is againreceived and repeating steps i-ix as necessary.
 2. The method of claim 1wherein the step of determining the cube root of (z₁,z₂) includesraising β=(z₁,z₂) to a power $u = \frac{2^{{2m} + 2} - 1}{3}$

to produce the element that is the cubic root of β.
 3. The method ofclaim 1 wherein the step of determining the cube root of (z₁,z₂)includes the steps of: i. raising β=(z₁,z₂) to a power L, where L is afactor of 2^(2m)−1; ii. raising β to a power V where L+3V=2^(Q); iii.determining a cubic root of β^(L); iv. multiplying (β^(L))^(⅓) by β^(V);and v. raising (β^(L))^(⅓) β^(V) to a power 2^(2m−Q) to produce theelement that is the cubic root of (z₁, z₂).
 4. The method of claim 1wherein the step of determining the cube root of (z₁,z₂) includes thesteps: i. raising β=(z₁,z₂) to a power L, where L is a factor of2^(2m)−1; ii. raising β^(L) to a power $u = \frac{2^{m_{0} - 1} - 1}{3}$

where m₀=2^(k)m iii. raising the element β to a power V, whereL+3V=2^(Q) iv. multiplying (β^(L))^(u) by β^(V); and raising (β^(L))^(u)β^(V) to a power 2^(2m−Q) to produce the element that is the cubic rootof (z₁, z₂).
 5. A method of operating a data processing system toidentify erroneous symbols in a code word, the method including thesteps of: A. receiving a code word with erroneous data symbols andproducing an associated degree-three polynomial with a term β³ that isan element of GF(2^(2m+1)); B. raising the element β³ to a power$u = \frac{2^{{2m} + 2} - 1}{3}$

to produce the cubic root of β; and C. using the cubic root of β,identifying which data symbols of the received code word are erroneousand i. correcting the errors in the data symbols of the code word, ii.labeling the code word as uncorrectable, or iii. requesting receipt ofthe code word again and repeating steps A-C as necessary.
 6. A method ofoperating a data processing system to identify erroneous data symbols ina code word, the method including the steps of: i. receiving a code wordwith erroneous data symbols and producing an associated degree-threepolynomial with a term β³ that is an element of GF(2^(2m)); ii. raisingthe element β³ to a power L, where L is a factor of 2^(2m)−1; iii.raising , to a power V where L+3V=2^(Q); iv. using β^(L) to enter astored lookup table to retrieve the cubic root of β^(L); v. multiplying(β^(L))^(⅓) by β^(V); vi raising (β^(L))^(⅓) β^(V) to a power 2^(2m−Q)to produce the cubic root of; and vii using the cubic root of β,identifying which data symbols of the received code word are erroneousand a. correcting the errors in the data symbols of the code word, b.labeling the code word as uncorrectable, or c. requesting receipt of thecode word again and repeating steps i-vii as necessary.
 7. A method ofoperating a data processing system to identify erroneous data symbols ina received code word, the method including the steps of: i. receiving acode word with erroneous data symbols and producing an associateddegree-three polynomial with a term β³ that is an element of GF(2^(2m));ii. raising the element β to a power L, where L is a factor of 2^(2m)−1;iii. raising β^(L) to a power $u = \frac{2^{m_{0} - 1} - 1}{3}$

where m₀=2^(k)m iv. raising the element β to a power V, where L+3V=2^(Q)v. multiplying (β^(L))^(u) by β^(V); vi. raising (β^(L))^(u) β^(V) to apower 2^(2m−Q) to produce the cubic root; and vii. using the cubic rootof β, identifying which data symbols of the received code word areerroneous and a. correcting the errors in the data symbols of the codeword, b. labeling the code word as uncorrectable, or c. requestingreceipt of the code word again and repeating steps i-vii as necessary.8. A data processing system for determining the roots of a degree-threepolynomial that is associated with a data codeword over GF(2^(2m+1)),the system including: A. a processor for receiving a data code wordcontaining errors and determining an associated degree-three polynomial;B. manipulation means for substituting variables in the degree threepolynomial to produce in an extension field GF(2^(4m+2)) an equation(y₁, y₂)³+(0,b)(y₁, y₂)+(0, a)=0; C. manipulation means for substitutingvariables to produce a quadratic equation (z₁, z₂)²+(0,b) (z₁,z₂)+(0,a)³=0 where (z₁, z₂) is an element of GF(2^(4m+2)) and solvingthe quadratic equation for (z₁, z₂); D. calculating means forcalculating the cube root, (s,t), of (z₁, z₂); and E. means fortransforming the roots (s, t) and s+t to the roots of the degree-threepolynomial and associating the roots with the locations of erroneousdata symbols in the data code word; and F. an error correction processorfor i. correcting the erroneous data symbols in the code word, ii.labeling the code word uncorrectable, or iii. sending a repeat requestfor the code word.
 9. The system of claim 8 wherein the calculatingmeans includes a multiplier for raising β=(z₁, z₂) to a power$u = \frac{2^{{2m} + 2} - 1}{3}$

to produce the element that is the cubic root of β.
 10. The system ofclaim 8 wherein the calculating means includes i. one or more firstmultipliers for raising β=(z₁,z₂) to a power L, where L is a factor of2^(2m)−1; ii. one or more second multipliers for raising β to a power Vwhere L+3V=2^(Q); iii. means for determining a cubic root of β^(L); iv.one or more third multipliers for multiplying the cubic root by β^(V);and v. one or more fourth multipliers for raising the product producedby the one or more third multipliers to a power 2^(2m−Q) to produce thecubic root.
 11. The system of claim 10 wherein the means for determininga cubic root of β^(L) includes a lookup table.
 12. The system of claim10 wherein the means for determining a cubic root of β^(L) includes oneor more fifth multipliers for raising β^(L) to a power${u = \frac{2^{m_{0} - 1} - 1}{3}},$

, where m₀=2^(k)m.
 13. A data processing system for determining errorlocations in a data code word, the system including: A. a firstprocessor for receiving the data code word and determining an associateddegree-three polynomial; B. a cubic root processor for calculating thecubic root of a multiple bit symbol β that is associated with thedegree-three error locator polynomial and is also an element ofGF(2^(2m)), the cubic root processor including i. one or more firstmultipliers for raising β to a power L, where L is a factor of 2^(2m)−1;ii. one or more second multipliers for raising β to a power V whereL+3V=2^(Q); iii. means for determining a cubic root of β^(L); iv. one ormore third multipliers for multiplying the cubic root by β^(V); and v.one or more fourth multipliers for raising the product produced by theone or more third multipliers to a power 2^(2m−Q) to produce themultiple bit symbol that is cubic root of β; and C. a second processorfor determining which symbols are in error in the data code word basedon the multiple bit symbol that is the cubic root of β, the errorlocation processor providing error location information to an errorcorrection processor.
 14. The system of claim 13 wherein the means fordetermining a cubic root of β^(L) includes a lookup table.
 15. Thesystem of claim 13 wherein the means for determining a cubic root ofβ^(L) includes one or more fifth multipliers for raising β^(L) to apower ${u = \frac{2^{m_{0} - 1} - 1}{3}},$

where m₀=2^(k)m.